Vertex AI Matching Engineを使ってみる
https://gyazo.com/c92a2439f14717a64bc395c50be79b2a
実験のうちは最も安いリージョンを選んでおく
初期データを保存するGCSバケットも同じリージョンに作ること。multi regionはだめ。
Node.jsから呼び出してみよう
どのAPIが関係するかは叩きながら考える
未実装のメソッドが多くて結局これは使えず、素朴にfetchするしかなかった daiiz.icon
実験リポジトリ
OpenAIの text-embedding-ada-002 で得られる1536次元のembeddingを使った
1で作ったIndexはindexUpdateMethodがBATCH_UPDATEだったので作り直し
PaLM APIの textembedding-gecko@001 で得られる768次元のembeddingを試す
あとで読みたくなりそう
public endpoint (認証必須) の作成方法
これそのものは目指さないけれど参考になる
https://gyazo.com/ca0e5e173636033340d2fa79442985ba
さらに先: 検索クエリ発行
この論理フィルタは柔軟で凄い
検索時にどうやって指定するのか
Node.jsのClient libraryを使ったサンプルコードが世に無いので自分で引数を考えて組み立てるしかない
~~~
疑問
STREAM_UPDATEモードでupsertしてから検索可能になるまでの時間
ただちに可能
upsertされたデータポイントはインデックス作成時に指定したGCSに永続化されるの?
されない。Elasticsearchの運用と同様に永続化は別でやっておくべき。upsertする前にGCSに保存しておけばいい。次回のインデックス構築時の初期データとしてもそのまま使える。 ストリーミング更新で追加されたものを含めてデータポイント数を確認するには?
不明
大きいneighbor_countで検索して全件取得する方法しか思いつかない daiiz.icon